-- absorb
-- created by chendh
-- 天空战附加属性：吸血（攻击对方时，对自己产生一定的治疗效果）
-- ([physics:([fight_ability":80])])代表飞艇主炮攻击时吸取自己总战力的8%
-- ([physics:(["defenser_fight_ability":80])])代表飞艇主炮攻击时吸取对方总战力的8%
-- ([physics:(["damage":80])])代表飞艇主炮攻击时吸取伤害值的8%

return {
    -- 空属性
    getEmptyProp = function()
        return {};
    end,

    -- 合并属性
    mergeSkyProp = function(data, addon)
        local result = {};

        if not data then
            result = table.deepcopy(addon);
        else
            result = table.deepcopy(data);

            for style, value in pairs(addon) do
                if not result[style] then
                    result[style] = {};
                end

                for type, num in pairs(value) do
                    result[style][type] = value[type] + (result[style][type] or 0);
                end
            end
        end

        return result;
    end,

    parseDesc = function(desc, data)
        -- 按顺序替换，每次替换一个
        local styleData, absorb;
        for _, key in ipairs(table.keys(data)) do
            styleData = data[key];
            for _, _key in ipairs(table.keys(styleData)) do
                -- 吸血比率
                absorb = math.modf(styleData[_key] / 10);
                desc = string.gsub(desc, "{absorb}", absorb, 1);
            end
        end

        return desc;
    end,
};